<?php
/**
 * Controller de Parametros.
 *
 *
 * @filesource          
 * @copyright		
 * @link		http://www.pragmatia.com Pragmatia
 * @package		datagro
 * @subpackage	app.controllers
 * @version     1.1
 * @license		http://www.opensource.org/licenses/mit-license.php The MIT License
 * @author      Martin Radosta <mradosta@pragmatia.com>
 */

/**
 * Clase ParametrosController
 *
 * @package	    datagro
 * @subpackage	app.controllers
 */

class  ParametrosController extends AppController
{
	var $uses = array("Parametro", "Dominio");
    var $name = 'Parametros';

/**
 * Index.
 *
 */
    function index()
    {
		if(!empty($this->data))
		{
			$condicion = $this->Filtro->generarCondicion($this->data['Filtro']);
			$this->paginate['conditions'] = $condicion;
		}
		$this->set('tipo_datos', $this->Dominio->generateList(array("nombre"=>"tipo_dato"), null, null, null, "{n}.Dominio.valor"));	
		$this->paginate['order'] = "Parametro.orden";
		$this->set('registros', $this->paginate());
    }


/**
 * View.
 *
 */
   function view($id = false) 
   {
        if ($id && is_numeric($id))
        {
			$this->set('tipo_datos', $this->Dominio->generateList(array("nombre"=>"tipo_dato"), null, null, null, "{n}.Dominio.valor"));	        
            $this->data = $this->Parametro->read(null, $id);
        }    
   }  


/**
 * Add.
 *
 */
	function add() {
		$this->set('tipo_datos', $this->Dominio->generateList(array("nombre"=>"tipo_dato"), null, null, null, "{n}.Dominio.valor"));		
		if(!empty($this->data) && isset($this->data['Parametro']['accion']) && ($this->data['Parametro']['accion'] == "grabar" || $this->data['Parametro']['accion'] == "cancelar")) {

			if ($this->data['Parametro']['accion'] == "grabar") {
				if($this->Parametro->create($this->data) && $this->Parametro->validates()) {
					if($this->Parametro->save($this->data))
						$this->Session->setFlash('El Parametro se agrego correctamente.', 'ok');
					else
						$this->Session->setFlash('No fue posible agregar el nuevo Parametro.', 'error');

						$this->redirect("index", null, true);
				}
			}
			elseif($this->data['Parametro']['accion'] == "cancelar") {
				$this->redirect("index", null, true);
			}
		}
	}


/**
 * Edit.
 *
 */
	function edit($id) {
		$this->set('tipo_datos', $this->Dominio->generateList(array("nombre"=>"tipo_dato"), null, null, null, "{n}.Dominio.valor"));	
		if(!empty($this->data) && isset($this->data['Parametro']['accion']) && ($this->data['Parametro']['accion'] == "grabar" || $this->data['Parametro']['accion'] == "cancelar")) {

			if ($this->data['Parametro']['accion'] == "grabar") {
				$this->Formato->formatearFechaHora();
				if($this->Parametro->create($this->data) && $this->Parametro->validates()) {
					if($this->Parametro->save($this->data))
						$this->Session->setFlash('El Parametro se actualizo correctamente.', 'ok');
					else
						$this->Session->setFlash('No fue posible actualizar el Parametro.', 'error');

						$this->redirect("index", null, true);
				}
				else {
					$this->render('add');
				}
			}
			elseif($this->data['Parametro']['accion'] == "cancelar") {
				$this->redirect("index", null, true);
			}
		}
		else {
			$this->data = $this->Parametro->read(null, $id);
			$this->render("add");
		}
	}


/**
 * Delete.
 *
 */
   function delete($id = false) {
        if ($id && is_numeric($id)){
			if ($this->Parametro->delete($id)) {
				$this->Session->setFlash('El parametro se borro correctamente.', 'ok');
			}
			else {
				$this->Session->setFlash('No fue posible borrar el parametro.', 'error');
			}
        }    
		$this->redirect('index');
   }  
}
?>